Low cost DSSS communication system

ABSTRACT

A method and apparatus for direct sequence spread spectrum communication having low complexity. In the transmitter, the data bit is spreaded by a code sequence, a reference code is interleaved with the code sequence, and together they are transmitted by the transmitter. The corresponding receiver recovers the data signal from the received signal by transforming the received signal to a complex base band signal and differentially decoding the base band signal at the chip level. The spreaded signal is despreaded by the chip-level differential operation, thus eliminating the decorrelation operation, and so significantly reducing the cost of the overall system. Furthermore, this system is very robust to any carrier frequency drift since the chip-level differential operation is used, thus releasing the reference clock or crystal requirements, and so further reducing the cost of the system.

TECHNICAL FIELD

[0001] This invention relates to techniques and apparatus for wireless communication using Direct Sequence Spread Spectrum (DSSS) techniques.

BACKGROUND OF THE INVENTION

[0002] In the transmitter of a direct-sequence spread spectrum communication systems, a carrier waveform is modulated by a data sequence x(n) and by a spreading sequence or code sequence C(n). The code sequence may be a pseudo-noise (PN) sequence, such as a maximum length sequence (m-sequence). The PN sequence is used to reduce the sensitivity of the communication channel to noise, reduce the power spectral density of the signal and to allow multiple communication channels to operate simultaneously. In the latter case, each channel is assigned its own PN code sequence, so the technique is called code-division multiple access (CDMA).

[0003] In the receiver the data signal is recovered by removing the carrier wave and then correlating the received signal with the PN code sequence used for transmission. Decorrelation requires a large amount of computation to align the received signal with the PN code sequence, and so adds to the cost of the receiver.

[0004] In view of the preceding remarks, it is clear that there is an unmet need in the art for a receiver that avoids the high cost of performing a correlation between the received signal and a PN code sequence.

BRIEF DESCRIPTION OF THE DRAWINGS

[0005] The features of the invention believed to be novel are set forth with particularity in the appended claims. The invention itself however, both as to organization and method of operation, together with objects and advantages thereof, may be best understood by reference to the following detailed description of the invention, which describes certain exemplary embodiments of the invention, taken in conjunction with the accompanying drawings in which:

[0006]FIG. 1 is a diagrammatic representation of the generation of spreading codes in accordance with an embodiment of the present invention.

[0007]FIGS. 2A and 2B are diagrammatic representations of embodiments of a transmitter of the present invention.

[0008]FIG. 3 is a diagrammatic representation of a digital receiver of the present invention.

[0009]FIG. 4 is a diagrammatic representation of an analog receiver of the present invention.

[0010]FIG. 5 is a diagrammatic representation of a transmitter of a further embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

[0011] While this invention is susceptible of embodiment in many different forms, there is shown in the drawings and will herein be described in detail specific embodiments, with the understanding that the present disclosure is to be considered as an example of the principles of the invention and not intended to limit the invention to the specific embodiments shown and described. In the description below, like reference numerals are used to describe the same, similar or corresponding parts in the several views of the drawings.

[0012] In direct sequence spread spectrum (DSSS) communication, a pseudo-noise (PN) code sequence is used to modulate a carrier waveform and thereby spread the spectrum of the transmitted signal. A PN code sequence of length N is denoted by C=(C₁, C₂, C₃, . . . ,C_(N)), where C_(i) has the value 1 or −1. The PN code sequence preferably has the property that the correlation of the sequence with a cyclically time-shifted version of itself has an absolute value of one or zero, whereas the correlation of the code sequence with itself has the value N.

[0013] In a first embodiment of the present invention, the two code sequences of length 2N are generated by interleaving groups of M elements from the sequences C and ±C. The two sequences are

C _(a)(2jM+i)=C(jM+i) C _(a)((2j+1)M+i)=C(jM+i)

[0014] and

C _(b)(2jM+i)=C(jM+i) C _(b)((2j+1)M+i)=−C(jM+i)

[0015] where j=0, . . . , N/M−1 and i=1, . . . , M.

[0016] For example, when M=1, the two code sequences of length 2N are generated as C_(a)=(C₁, C₁, C₂, C₂, C₃, C₃, . . . , C_(N), C_(N)) and C_(b)=(C₁, −C₁, C₂, −C₂, C₃, −C₃, . . . , C_(N), −C_(N)). These sequences may be generated, as in FIG. 1 for example, by interleaving the code sequence C with the code sequence C or −C. The transmitted signal is generated as shown in FIG. 2A. The data signal x=(a₁, a₂, a₃, . . . ) 202 is passed to selector 204. If the current signal a_(i) is equal to 1 it is passed to multiplier 206, where it is multiplied by the code sequence C_(a). If the current signal a_(i) is equal to −1 it is passed to multiplier 208, where it is multiplied by the code sequence C_(b). The outputs from the multipliers 206 and 208 are added at summer 210, to produce a modulation signal 212. The modulation signal 212 is passed to multiplier 214, where it multiplies (modulates) the carrier signal cos(ω_(c)t) 216. Here, ω_(c) is the carrier frequency in radians per second, and t is the time in seconds. The resulting signal 218 is amplified and passed to antenna 220 for transmission. One element (chip) of the code sequence is generated every T_(c) seconds, so the chip rate is R_(c)=1/T_(c). The bit-rate is equal to R_(c)/(2N), since 2N chips are used for each bit of information.

[0017]FIG. 2B shows a further transmitter of the present invention. A PN code sequence C=(C₁, C₂, C₃, . . . , C_(N)) is supplied to interpolator or up-sampler 230, that inserts zeros between the elements of the code sequence, yielding the sequence C_(int)=(C₁, 0, C₂, 0, C₃, 0, . . . , 0, C_(N), 0). The sequence is delayed by one chip period in delay element 232 to give the sequence (0, C₁, 0, C₂, 0, C₃, 0, . . . , 0, C_(N)). The delayed signal is multiplied by the data value a_(i) at 234 and the result is added at 236 to the interpolated sequence to give the sequence (C₁, a_(i)C₁, C₂, a_(i)C₂, C₃, a_(i)C₃, . . . , C_(N), a_(i)C_(N)). The gives the sequence C_(a) when a_(i)=1, and the sequence C_(b) when a_(i)=−1. The sequence is then modulated by the carrier signal and transmitted as usual.

[0018] The corresponding receiver is shown in FIG. 3. Referring to FIG. 3, the incoming radio signal is received by antenna 302. The received signal is multiplied by the signal cos(ω_(c)t) in multiplier 304 to produce an in-phase signal component. . The received signal is multiplied by the signal sin(ω_(c)t) in multiplier 306 to produce a quadrature signal component. The in-phase and quadrature signal components are filtered in match filter 308, which has an impulse response matched to the transmitted pulse shape, and the resulting filtered signals are sampled by analog-to-digital converter (ADC) 310 to produce in-phase and quadrature data sequences I and Q. The sampling rate of the ADC is preferably greater than the chip rate, and is denoted by K.R_(c), where K is bigger than or equal to 1. The n^(th) samples of the sequences are denoted by the complex baseband signal S(n)=I(n)+iQ(n)=A(n)e^(−iθ), where i={square root}−1 and θ is an unknown phase offset. The complex baseband signal S(n) is passed to complex delay unit 312, where the signal is delayed by an amount MT_(c), where T_(c) is the chip period and M is the number of consecutive samples taken from each sequence during interleaving in the transmitter. The output from the complex delay unit is S(n-MK). In the sequel we consider the case M=1 without loss of generality. The complex conjugate of the signal is calculated at 314, to give the signal

S*(n−k)=I(n−K)−iQ(n−K)=A(n−K).e^(iθ).

[0019] At multiplier 316, the signals S(n) and S*(n−K) are multiplied to give the complex product signal

U(n)=A(n)e ^(−iθ) .A(n−K)e^(iθ) =A(n).A(n−K).

[0020] At block 318, the real part is taken to give V(n)=A(n)A(n−K). This removes any imaginary part introduced by a small mismatch between the carrier frequency in the transmitter and the receiver. The signal V(n) is then integrated at 320 and the result passed to decision logic 322.

[0021] By way of explanation, we consider the case K=1. When a bit 1 is transmitted, the current data value is a_(i)=1, the previous data value is a_(i−1). The received signal is I=C_(a)=(C₁, C₁, C₂, C₂, C₃, C₃, . . . , C_(N), C_(N)), the delayed version of I is I′=(a_(i−1)C_(N), C₁, C₁, C₂, C₂, C₃, C₃, . . . , C_(N−1), C_(N)), and the product of I with I′ is $\begin{matrix} {V = \left( {{a_{i - 1}C_{N}C_{1}},{C_{1}C_{1}},{C_{1}C_{2}},{C_{2}C_{2}},{C_{2}C_{3}},{C_{3}C_{3}},{C_{3}C_{4}},\ldots \quad,} \right.} \\ \left. {{C_{N - 1}C_{N - 1}},{C_{N - 1}C_{N}},{C_{N}C_{N}}} \right) \\ {= {\left( {{a_{i - 1}C_{N}C_{1}},1,{C_{1}C_{2}},1,{C_{2}C_{3}},1,{C_{3}C_{4}},\ldots \quad,\quad 1,{C_{N - 1}C_{N}},1} \right).}} \end{matrix}$

[0022] The integration over one cycle gives

N+a _(i−1) C _(N) C ₁ +C ₁ C ₂ +C ₂ C ₃ , +C ₃ C ₄ + . . . +C _(N−1) C _(N) =N+(a _(i−1)−1)C _(N) C ₁+ε

[0023] where ε=C₁C₂+C₂C₃, +C₃C₄+ . . . +C_(N−1)C_(N)+C_(N)C₁=−1 is the cyclic correlation of the PN code sequence with shift one. By carefully picking the code, we can make the product C_(N)C₁=−1. Hence the value of the integration is N−a_(i−1), which equals to N−1 or N+1 depending on the previous bit value a_(i−1).

[0024] When the bit −1 is transmitted, the current data value is a_(i)=−1, the previous data value is a_(i−1). The received signal is C_(b)=(C₁, −C₁, C₂, −C₂, C₃, −C₃, . . . , C_(N), −C_(N)), the delayed version of I is I′=(a_(i−1)C_(N), C₁, −C₁, C₂, −C₂, C₃, −C₃, . . . , −C_(N−1), C_(N)),

[0025] The product of I with the delayed signal is $\begin{matrix} {V = \left( {{a_{i - 1}C_{N}C_{1}},{{- C_{1}}C_{1}},{{- C_{1}}C_{2}},{{- C_{2}}C_{2}},{{- C_{2}}C_{3}},{{- C_{3}}C_{3}}, -} \right.} \\ \left. {{C_{3}C_{4}},\ldots \quad,\quad {{- C_{N - 1}}C_{N}},{{- C_{N}}C_{N}}} \right) \\ {= \left( {{a_{i - 1}C_{N}C_{1}},{- 1},{{- C_{1}}C_{2}},{- 1},{{- C_{2}}C_{3}},{- 1},{{- C_{3}}C_{4}},\ldots \quad, -}\quad \right.} \\ {\left. {{C_{N}C_{N - 1}},{- 1}} \right),} \end{matrix}$

[0026] and the integration over one cycle gives

−N+a _(i−1) C _(N) C ₁ −C ₁ C ₂ −C ₂ C ₃ , −C ₃ C ₄ − . . . −C _(N−1) C _(N) =−N+(a _(i−1)+1) C _(N) C ₁−ε,

[0027] where ε=C₁C₂+C₂C₃, +C₃C₄+ . . . +C_(N−1)C_(N)+C_(N)C₁=−1 is the cyclic correlation of the PN code sequence with shift one. As discussed above, the product C_(N)C₁=−1. Hence the value of the integration is −N−a_(i−1), which equals to −N−1 or −N+1 depending on the previous bit value a_(i−1).

[0028] The value of N is large (typically 127), so the decision logic simply compares the integration value to zero. A positive value is interpreted as a +1 bit, while a negative value is interpreted as a −1 bit. Hence the signal has been decoded without the use of a correlation. Further, the differential decoding is performed chip-by-chip, so the receiver is very robust to drift in the carrier frequency. This further reduces cost by avoiding the need for a very accurate timer or clock source. For example, if the frequency difference between the transmitter and receiver is Δω, the receiver signal after demodulation is

S(t)=A(t)exp(−iΔωt+∂),

[0029] where θ is a phase offset. The product signal is

U(t)=S(t){overscore (S)}(t−T _(c))=A(t)A(t−T _(c))exp(−iΔωT _(c)),

[0030] and the real part is

V(t)=A(t)A(t−T _(c))cos(ΔωT _(c)).

[0031] Thus, when the product ΔωT_(c) is small, there is only a very small amplitude change. The computation can be performed using analog or digital hardware or using software running on a computer. FIG. 4 shows an embodiment of a receiver of the invention using an analog system. In this embodiment the ADC is omitted. The discrete integration element 320 in FIG. 3 is replaced by analog integrator 324 in FIG. 4. The integrator is periodically reset to zero.

[0032] A further embodiment of a transmitter is shown in FIG. 5. In this embodiment −1 bits are transmitted as before, but for +1 bits, the PN code sequence C is used rather than C_(a). Since C is of length N while C_(a) is of length 2N, the data rate of this embodiment is higher. The receiver is as described above.

[0033] When a bit 1 is transmitted, the received signal is I=C=(C₁, C₂, C₃, . . . , C_(N)), and the real part of the product with the delayed signal is

V=(a _(i−1) C _(N) C ₁ , C ₁ C ₂ , C ₂ C ₃ , C ₃ C ₄ , . . . , C _(N−1) C _(N)),

[0034] where a_(i−1) is the previous bit data value.

[0035] The integration over one cycle gives

C ₁ C ₂ +C ₂ C ₃ , +C ₃ C ₄ + . . . +C _(N−1) C _(N) +a _(i−1) C _(N) C ₁=ε+(a _(i−1)−1)C _(N) C ₁

[0036] where, as before, ε=C₁C₂+C₂C₃, +C₃C₄+ . . . +C_(N)C_(N−1)+C_(N)C₁=−1 is the cyclic correlation of the PN code sequence with shift one. By carefully picking the code, we can make the product C_(N)C₁=−1. Hence the value of the integration is −a_(i−1), which equals to −1 or +1 depending on the previous bit value a_(i−1).

[0037] When the bit −1 is transmitted, the current data value is a_(i)=−1, the previous data value is a_(i−1). The received signal is C_(b)=(C₁, −C₁, C₂, −C₂, C₃, −C₃, . . . , C_(N), −C_(N)), the delayed version of I is I′=(a_(i−1)C_(N), C₁, −C₁, C₂, −C₂, C₃, −C₃, . . . , −C_(N−1), C_(N)),

[0038] The product of I with the delayed signal is $\begin{matrix} {V = \left( {{a_{i - 1}C_{N}C_{1}},{{- C_{1}}C_{1}},{{- C_{1}}C_{2}},{{- C_{2}}C_{2}},{{- C_{2}}C_{3}},{{- C_{3}}C_{3}}, -} \right.} \\ \left. {{C_{3}C_{4}},\ldots \quad,\quad {{- C_{N - 1}}C_{N}},{{- C_{N}}C_{N}}} \right) \\ {= \left( {{a_{i - 1}C_{N}C_{1}},{- 1},{{- C_{1}}C_{2}},{- 1},{{- C_{2}}C_{3}},{- 1},{{- C_{3}}C_{4}},\ldots \quad, -}\quad \right.} \\ {\left. {{C_{N}C_{N - 1}},{- 1}} \right),} \end{matrix}$

[0039] and the integration over one cycle gives

−N+a _(i−1) C _(N) C ₁ −C ₁ C ₂ −C ₂ C ₃ ,−C ₃ C ₄ − . . . −C _(N−1) C _(N) =−N+(a _(i−1)+1)C _(N) C ₁−ε,

[0040] where ε=C₁C₂+C₂C₃, +C₃C₄+ . . . +C_(N−1)C_(N)+C_(N)C₁=−1 is the cyclic correlation of the PN code sequence with shift one. As discussed above, the product C_(N)C₁=−1. Hence the value of the integration is −N−a_(i−1), which equals to −N−1 or −N+1 depending on the previous bit value a_(i−1).

[0041] The value of N is large (typically 127), so the decision logic simply compares the integration value to −N/2. A value greater than −N/2 is interpreted as a +1 bit, while a value less than −N/2 is interpreted as a −1 bit. Hence the signal has been decoded without the use of a correlation.

[0042] The first embodiment has better sensitivity than this embodiment, i.e. it is less sensitive to noise, but this embodiment has a higher data rate.

[0043] Those of ordinary skill in the art will recognize that the present invention has been described in terms of exemplary embodiments based upon use of an ideal rectangular pulse. However, the invention should not be so limited, since the present invention could be implemented using other pulse shapes. Similarly, the present invention may be implemented using general-purpose computers, microprocessor based computers, digital signal processors, microcontrollers, dedicated processors, custom circuits, ASICS and/or dedicated hard-wired logic.

[0044] Many other variations will also be evident to those of ordinary skill in the art. The embodiment disclosed can be embodied in a DSSS receiver for a location system, for instance, but it is understood that the method and apparatus of the present invention is equally applicable to all other systems using DSSS techniques.

[0045] While the invention has been described in conjunction with specific embodiments, it is evident that many alternatives, modifications, permutations and variations will become apparent to those of ordinary skill in the art in light of the foregoing description. Accordingly, it is intended that the present invention embrace all such alternatives, modifications and variations as fall within the scope of the appended claims. 

What is claimed is:
 1. A method for generating a modulation sequence from a data value in a direct sequence spread spectrum transmitter, said method comprising: generating a first and second code sequences by interleaving groups of M chips from a pseudo-noise sequence C=(C₁, C₂, C₃, . . . , C_(N)) of length N with elements C_(i)=±1, said first code sequence C_(a) being C _(a)(2jM+i)=C(jM+i)C _(a)((2j+1)M+i)=C(jM+i) and said second code sequence C_(b) being C _(b)(2jM+i)=C(jM+i)C _(b)((2j+1)M+i)=−C(jM+i) where j=0, . . . , N/M−1 and i=1, . . . , M; and selecting said modulation sequence as said first or second sequence according to the data value.
 2. A method as in claim 1, wherein M=1, said first code sequence is given by C_(a)=(C₁, C₁, C₂, C₂, C₃, C₃, . . . , C_(N), C_(N)) and said second code sequence is given by C_(b)=(C₁, −C₁, C₂, −C₂, C₃, −C₃, . . . , C_(N), −C_(N)).
 3. A method for generating a modulation sequence from a data value having a value ±1 in a direct sequence spread spectrum transmitter, said method comprising: generating a pseudo-noise sequence C=(C₁, C₂, C₃, . . . , C_(N)); up-sampling the pseudo-noise sequence by a factor of two to obtain a first sequence (C₁, 0, C₂, 0, C₃, 0 , . . . , 0, C_(N),0); delaying the first sequence to give a second sequence (0, C₁, 0, C₂, 0, C₃, 0, . . . , 0, C_(N)); multiplying said second sequence by the data value to obtain a third sequence; and adding said first and third sequences to obtain said modulation signal.
 4. A method for generating a modulation sequence from a data value in a direct sequence spread spectrum transmitter, said method comprising: generating a pseudo-noise sequence C=(C₁, C₂, C₃, . . . , C_(N)) of length N, where C_(i)=±1; generating an interleaved code sequence C_(b) by interleaving groups of M chips from the pseudo-noise sequence C and the pseudo noise sequence −C as C _(b)(2jM+i)=C(jM+i)C _(b)((2j+1)M+i)=−C(jM+i), where j=0, . . . , N/M−1 and i=1, . . . , M; and selecting said modulation sequence as said pseudo-noise sequence or said interleaved sequence according to the data value.
 5. A method as in claim 4, wherein M=1 and said interleaved code sequence is given by C_(b)=(C₁, −C₁, C₂, −C₂, C₃, −C₃, . . . , C_(N), −C_(N)).
 6. A method for recovering a data value from a received signal in a direct sequence spread spectrum receiver, said received signal having a chip period T_(c), a bit period T_(b) and being modulated by first code sequence C_(a) or second code sequence C_(b) generated by interleaving groups of M chips from a pseudo-noise sequence C=(C₁, C₂, C₃, . . . , C_(N)) of length N with elements C_(i)=±1, said first code sequence C_(a) having elements C _(a)(2jM+i)=C(jM+i)C _(a)((2j+1)M+i)=C(jM+i) and said second code sequence C_(b) having elements C _(b)(2jM+i)=C(jM+i)C _(b)((2j+1)M+i)=−C(jM+i) where j=0, . . . , N/M−1 and i=1, . . . , M; said method comprising: transforming said received signal to complex baseband signal having in-phase and quadrature components; delaying said complex baseband signal by a time MT_(c) equal to M chip periods to obtain a complex delayed signal; multiplying the complex baseband signal by the conjugate of the complex delayed signal to obtain a complex product signal; integrating the real part of said complex product signal over the bit period T_(b) to obtain an integrated value; and determining said data value from said integrated value.
 7. A method as in claim 6, wherein M=1, C_(a)=(C₁, C₁, C₂, C₂, C₃, C₃, . . . , C_(N), C_(N)) and C_(b)=(C₁, −C₁, C₂, −C₂, C₃, −C₃, . . . , C_(N), −C_(N)).
 8. A method as in claim 6, wherein said determining comprises comparing said integrated value to a predetermined threshold value.
 9. A method as in claim 6, further comprising sampling said baseband complex signal using an analog-to-digital converter.
 10. A method for recovering a data value from a received signal in a direct sequence spread spectrum receiver, said received signal having a chip period T_(c), a bit period T_(b) and being modulated by a code C=(C₁, C₂, C₃, . . . , C_(N)) or a code sequence C_(b)=(C₁, −C₁, C₂, −C₂, C₃, −C₃, . . . , C_(N), −C_(N)), where C_(i)=±1 and C is a pseudo-noise sequence, said method comprising: transforming said received signal to complex baseband signal having in-phase and quadrature components; delaying said complex baseband signal by a time equal to the chip period T_(c); to obtain a complex delayed signal; multiplying the complex baseband signal by the conjugate of the complex delayed signal to obtain a complex product signal; integrating the real part of said complex product signal over the bit period T_(b) to obtain an integrated value; and determining said data value from said integrated value.
 11. A method as in claim 10, wherein said determining comprises comparing said integrated value to a predetermined threshold value.
 12. A method as in claim 10, further comprising sampling said baseband complex signal using an analog-to-digital converter.
 13. A direct sequence spread spectrum transmitter for generating a modulation sequence from a data value, said transmitter comprising: means for generating a first code sequence C_(a) having elements C _(a)(2jM+i)=C(jM+i)C _(a)((2j+1)M+i)=C(jM+i) where C=(C₁, C₂, C₃, . . . , C_(N)) is a pseudo-noise sequence of length N with elements C_(i)=±1, j=0, . . . , N/M−1, i=1, . . . , M and M<N is an integer; means for generating a second code sequence C_(b) having elements C _(b)(2jM+i)=C(jM+i)C _(b)((2j+1)M+i)=−C(jM+i); means for selecting said modulation sequence as said first or second sequence according to the data value.
 14. A direct sequence spread spectrum transmitter as in claim 13, wherein M=1, C_(a)=(C₁, C₁, C₂, C₂, C₃, C₃, . . . , C_(N), C_(N)) and C_(b)=(C₁, −C₁, C₂, −C₂, C₃, −C₃, . . . , C_(N), −C_(N)).
 15. A direct sequence spread spectrum transmitter for generating a modulation sequence from a data value having a value ±1, said transmitter comprising: a pseudo-noise generator for generating a sequence C=(C₁, C₂, C₃, . . . , C_(N)); an up-sampler for up-sampling the pseudo-noise sequence by a factor of two to obtain a first sequence (C₁, 0, C₂, 0, C₃, 0, . . . 0, C_(N),0); a delay element for delaying the first sequence to give a second sequence (0, C₁, 0, C₂, 0, C₃, 0, . . . , 0, C_(N)); a multiplier for multiplying said second sequence by the data value to obtain a third sequence; and an adder for adding said first and third sequences to obtain said modulation signal.
 16. A direct sequence spread spectrum transmitter for generating a modulation sequence from a data value, said transmitter comprising: pseudo-noise generator for generating a pseudo-noise sequence C=(C₁, C₂, C₃, . . . , C_(N)) where C_(i)=±1; means for generating an interleaved code sequence C_(b) having elements C _(b)(2jM+i)=C(jM+i)C _(b)((2j+1)M+i)=−C(jM+i); where C=(C₁, C₂, C₃, . . . , C_(N)) is a pseudo-noise sequence of length N with elements C_(i)=±1, j=0, . . . , N/M−1, . . . , M and M<N is an integer; and means for selecting said modulation sequence as said pseudo-noise sequence or said interleaved sequence according to the data value.
 17. A direct sequence spread spectrum transmitter as in claim 16, wherein M=1 and said interleaved code sequence is C_(b)=(C₁, −C₁, C₂, −C₂, C₃, −C₃, . . . , C_(N), −C_(N)).
 18. A direct sequence spread spectrum receiver for recovering a data value from a received signal in a direct sequence spread spectrum receiver, said received signal having a chip period T_(c), a bit period T_(b) and being modulated by first code sequence C_(a) or second code sequence C_(b) generated by interleaving groups of M chips from a pseudo-noise sequence C=(C₁, C₂, C₃, . . . , C_(N)) of length N with elements C_(i)=±1, said second code sequence C_(b) having elements C _(b)(2jM+i)=C(jM+i)C _(b)((2j+1)M+i)=−C(jM+i) where j=0, . . . , N/M−1 and i=1, . . . , M; said receiver comprising: a converter operable to transform said received signal to a complex baseband signal having in-phase and quadrature components; a delay element operable to delay said complex baseband signal by a time MT_(c), equal to M chip periods, to obtain a complex delayed signal; a multiplier operable to multiply the complex baseband signal by the conjugate of the complex delayed signal to obtain a complex product signal; an integrator operable to integrate the real part of said complex product signal over the bit period T_(b) to obtain an integrated value; and a decision logic circuit operable to determine said data value from said integrated value.
 19. A direct sequence spread spectrum receiver as in claim 18, wherein said first code sequence C_(a) has length 2N and elements C _(a)(2jM+i)=C(jM+i)C _(a)((2j+1)M+i)=C(jM+i)
 20. A direct sequence spread spectrum receiver as in claim 18, wherein said first code sequence C_(a) is C and has length N. 